package com.houshuai.emqtt.server;

import org.springframework.integration.annotation.MessagingGateway;
import org.springframework.integration.mqtt.support.MqttHeaders;
import org.springframework.messaging.handler.annotation.Header;
import org.springframework.stereotype.Component;

/**
 * FileName: MqttTestServer
 * author:   候帅
 * data:     2018/7/9 21:35
 * Description: Mqtt传输使用
 * History:
 *网关是实现为应用程序可以调用将消息发送到集成信息流的接口
 * 没有必要实现这个接口。Spring Integration 自动提供运行时实现，这个实现会使用特定的通道进行数据的发送与接收。
 *
 *
 * @MessagingGateway 的 defaultRequestChannel 属性表示，对接口方法的调用产生的任何消息都应该发送到给定的消息通道。
 * 在本例中，声明从 sendToMqtt() 调用产生的任何消息都应该发送到名为 mqttOutboundChannel 的通道。
 */
@Component
@MessagingGateway(defaultRequestChannel = "pubSubChannel"
//        , defaultHeaders = {@GatewayHeader(name = "tic", value = "PushException")}
        )//这个注解告诉 Spring Integration 在运行时生成这个接口的实现
public interface MqttTestServer {
    void sendToMqtt(String data, @Header(MqttHeaders.TOPIC)String topic);
}
